home *** CD-ROM | disk | FTP | other *** search
- # bash completion for postfix
-
- have postfix && {
- # postfix(1)
- #
- _postfix()
- {
- local cur prev
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- case $prev in
- -c)
- _filedir -d
- return 0
- ;;
- -D)
- COMPREPLY=( $( compgen -W 'start' -- "$cur" ) )
- return 0
- ;;
- esac
-
- if [[ $cur == -* ]]; then
- COMPREPLY=( $( compgen -W '-c -D -v' -- "$cur" ) )
- return 0
- fi
-
- COMPREPLY=( $( compgen -W 'check start stop abort flush reload status \
- set-permissions upgrade-configuration' -- "$cur" ) )
- }
- complete -F _postfix -o filenames postfix
-
- # postalias(1) and postmap(1)
- #
- _postmap()
- {
- local cur prev len idx
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- case $prev in
- -c)
- _filedir -d
- return 0
- ;;
- -[dq])
- return 0
- ;;
- esac
-
- if [[ $cur == -* ]]; then
- COMPREPLY=( $( compgen -W '-N -f -i -n -o -p -r -v -w -c -d -q'\
- -- "$cur" ) )
- return 0
- fi
-
- if [[ "$cur" == *:* ]]; then
- COMPREPLY=( $( compgen -f -- "${cur#*:}" ) )
- else
- len=${#cur}
- idx=0
- for pval in $( /usr/sbin/postconf -m ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]="$pval:"
- idx=$(($idx+1))
- fi
- done
- if [[ $idx -eq 0 ]]; then
- COMPREPLY=( $( compgen -f -- "$cur" ) )
- fi
- fi
- return 0
- }
- complete -F _postmap -o filenames postmap postalias
-
- # postcat(1)
- #
- _postcat()
- {
- local cur prev pval len idx qfile
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- case $prev in
- -c)
- _filedir -d
- return 0
- ;;
- esac
-
- if [[ $cur == -* ]]; then
- COMPREPLY=( $( compgen -W '-c -q -v' -- "$cur" ) )
- return 0
- fi
-
- qfile=0
- for idx in "${COMP_WORDS[@]}"; do
- [[ "$idx" = -q ]] && qfile=1 && break
- done
- if [[ $qfile == 1 ]]; then
- len=${#cur}
- idx=0
- for pval in $( mailq 2>/dev/null | \
- sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]=$pval
- idx=$(($idx+1))
- fi
- done
- return 0
- else
- _filedir
- return 0
- fi
- }
- complete -F _postcat -o filenames postcat
-
- # postconf(1)
- #
- _postconf()
- {
- local cur prev pval len idx eqext
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- case $prev in
- -b|-t)
- _filedir
- return 0
- ;;
- -c)
- _filedir -d
- return 0
- ;;
- -e)
- cur=${cur#[\"\']}
- eqext='='
- ;;
- esac
-
- if [[ $cur == -* ]]; then
- COMPREPLY=( $( compgen -W '-A -a -b -c -d -e -h -m -l -n -t -v'\
- -- "$cur" ) )
- return 0
- fi
-
- len=${#cur}
- idx=0
- for pval in $( /usr/sbin/postconf 2>/dev/null | cut -d ' ' -f 1 ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]="$pval$eqext"
- idx=$(($idx+1))
- fi
- done
- return 0
- }
- complete -F _postconf -o filenames postconf
-
- # postsuper(1)
- #
- _postsuper()
- {
- local cur prev pval len idx
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- case $prev in
- -c)
- _filedir -d
- return 0
- ;;
- -[dr])
- len=${#cur}
- idx=0
- for pval in ALL $( mailq 2>/dev/null | \
- sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//' ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]=$pval
- idx=$(($idx+1))
- fi
- done
- return 0
- ;;
- -h)
- len=${#cur}
- idx=0
- for pval in ALL $( mailq 2>/dev/null | \
- sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* ].*$//; /!$/d' ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]=$pval
- idx=$(($idx+1))
- fi
- done
- return 0
- ;;
- -H)
- len=${#cur}
- idx=0
- for pval in ALL $( mailq 2>/dev/null | \
- sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; /^[0-9A-Z]*[* ]/d; s/!.*$//' ); do
- if [[ "$cur" == "${pval:0:$len}" ]]; then
- COMPREPLY[$idx]=$pval
- idx=$(($idx+1))
- fi
- done
- return 0
- ;;
- esac
-
- if [[ $cur == -* ]]; then
- COMPREPLY=( $( compgen -W '-c -d -h -H -p -r -s -v' -- "$cur" ) )
- return 0
- fi
-
- COMPREPLY=( $( compgen -W 'hold incoming active deferred' -- "$cur" ) )
- }
- complete -F _postsuper -o filenames postsuper
- }
-
- # Local variables:
- # mode: shell-script
- # sh-basic-offset: 4
- # sh-indent-comment: t
- # indent-tabs-mode: nil
- # End:
- # ex: ts=4 sw=4 et filetype=sh
-